package Q1_07_Rotate_Matrix; import CtCILibrary.*; public class Question { public static boolean rotate(int[][] matrix) { if (matrix.length == 0 || matrix.length != matrix[0].length) return false; // Not a square int n = matrix.length; for (int layer = 0; layer < n / 2; layer++) { int first = layer; int last = n - 1 - layer; for(int i = first; i < last; i++) { int offset = i - first; int top = matrix[first][i]; // save top // left -> top matrix[first][i] = matrix[last-offset][first]; // bottom -> left matrix[last-offset][first] = matrix[last][last - offset]; // right -> bottom matrix[last][last - offset] = matrix[i][last]; // top -> right matrix[i][last] = top; // right <- saved top } } return true; } public static void main(String[] args) { int[][] matrix = AssortedMethods.randomMatrix(3, 3, 0, 9); AssortedMethods.printMatrix(matrix); rotate(matrix); System.out.println(); AssortedMethods.printMatrix(matrix); } }